package com.fjw.service.impl;

import com.fjw.mapper.PostRecordMapper;
import com.fjw.pojo.PostRecord;
import com.fjw.service.PostRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 简历投递记录业务逻辑实现类
 * 负责处理学生简历投递到企业招聘岗位的核心业务逻辑
 */
@Service
public class PostRecordServiceImpl implements PostRecordService {

    @Autowired
    private PostRecordMapper postRecordMapper;

    /**
     * 新增简历投递记录
     * @param postRecord 投递记录实体，需包含简历ID、文章ID（招聘信息）
     */
    @Override
    public void add(PostRecord postRecord) {
        postRecordMapper.add(postRecord);
    }

    /**
     * 通过ID查询投递记录详情
     * @param id 投递记录唯一标识
     * @return 投递记录实体，若不存在则返回null
     */
    @Override
    public PostRecord findById(Integer id) {
        return postRecordMapper.findById(id);
    }

    /**
     * 通过简历ID查询所有投递记录
     * @param cv_id 简历ID
     * @return 该简历对应的所有投递记录列表
     */
    @Override
    public List<PostRecord> findByCv_id(Integer cv_id) {
        return postRecordMapper.findByCv_id(cv_id);
    }

    /**
     * 通过文章ID（招聘信息）查询所有投递记录
     * @param article_id 文章ID（对应企业发布的招聘信息）
     * @return 该招聘信息收到的所有投递记录列表
     */
    @Override
    public List<PostRecord> findByArticle_id(Integer article_id) {
        return postRecordMapper.findByArticle_id(article_id);
    }

    /**
     * 通过简历ID和文章ID查询唯一投递记录
     * @param cv_id 简历ID
     * @param article_id 文章ID（招聘信息）
     * @return 符合条件的投递记录，若不存在则返回null
     */
    @Override
    public PostRecord findByCv_idAndArticle_id(Integer cv_id, Integer article_id) {
        return postRecordMapper.findByCv_idAndArticle_id(cv_id, article_id);
    }

    /**
     * 通过ID更新投递记录的企业反馈意见
     * @param id 投递记录ID
     * @param advice 企业反馈意见（如"通过初筛，进入面试"）
     */
    @Override
    public void updateById(Integer id, String advice) {
        postRecordMapper.updateById(id, advice);
    }
}
